#include <stdio.h>
#include <unistd.h>
#include "ohos_init.h"
#include "cmsis_os2.h"
#include "iot_gpio.h"
#include "iot_gpio_ex.h"

//GPIO pins define here 

#define MOTOR 2
#define MOTOR_PWM_CHN 2

void motor_init()
{

    IoTGpioInit(MOTOR);
    IoTGpioSetFunc(MOTOR, IOT_GPIO_FUNC_GPIO_2_PWM2_OUT);
    IoTGpioSetDir(MOTOR,IOT_GPIO_DIR_OUT);
    IoTPwmInit(MOTOR_PWM_CHN);
}


void motor_speed(int speed)
{
    if(speed == 0){
        printf(">> motor set stop\n");
        IoTPwmStop(MOTOR_PWM_CHN);
    }
    else{
        printf(">> motor set %d\n",speed);
        IoTPwmStart(MOTOR_PWM_CHN, speed, 40000);
    }
}

static void motor_task(void)
{
    while (1)
    {
        for(int i=0;i<10;i++)
        {
            motor_speed(i);
            usleep(1500*1000);
        }

    }
}

// static void MotorExampleEntry(void)
// {

//     motor_init();

//     osThreadAttr_t attr;
 
//     attr.name = "LedTask1";
//     attr.attr_bits = 0U;
//     attr.cb_mem = NULL;
//     attr.cb_size = 0U;
//     attr.stack_mem = NULL;
//     attr.stack_size = 1024;
//     attr.priority = 22;
//     if (osThreadNew((osThreadFunc_t)motor_task, NULL, &attr) == NULL) {
//         printf("[LedExample] Falied to create LedTask1!\n");
//     }
// }

// SYS_RUN(MotorExampleEntry);